// 页面白名单
const whiteList = [
	'/pages/login/index',
	'/pages/index/index',
	'/pages/login/phone',
	'/pages/index/detail',
	'/pages/trading/index',
	'/pages/trading/detail',
	'/uaerPage/writer/index'
]

function hasPermission(url) {
	let token = uni.getStorageSync('token');
	let path = url && url.split('?') ? url.split('?')[0] : url;
	// 在白名单中或有token，直接跳转
	if (whiteList.includes(path) || token) {
		return true
	}
	return false
}

uni.addInterceptor('navigateTo', {
	// 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
	invoke(e) {
		if (!hasPermission(e.url)) {
			uni.navigateTo({
				url: '/pages/login/index'
			})
			return false
		}
		return true
	},
	success(e) {}
})

uni.addInterceptor('switchTab', {
	// tabbar页面跳转前进行拦截
	invoke(e) {
		if (!hasPermission(e.url)) {
			uni.navigateTo({
				url: '/pages/login/index'
			})
			return false
		}
		return true
	},
	success(e) {}
})
uni.addInterceptor('reLaunch', {
	// 关闭所有页面，打开到应用内的某个页面。
	invoke(e) {
		if (!hasPermission(e.url)) {
			uni.navigateTo({
				url: '/pages/login/index'
			})
			return false
		}
		return true
	},
	success(e) {}
})
uni.addInterceptor('redirectTo', {
	// 关闭当前页面，跳转到应用内的某个页面。
	invoke(e) {
		if (!hasPermission(e.url)) {
			uni.navigateTo({
				url: '/pages/login/index'
			})
			return false
		}
		return true
	},
	success(e) {}
})